1. Field of the Invention
The present invention relates to the field of XForms technologies and, more particularly, to using a backend simulator to test and develop XForms templates before linking the XForms templates to backend data processing systems
2. Description of the Related Art
XForms is a markup language specified by the World Wide Web Consortium (W3C) that is based upon an Extensible Markup Language (XML). XForms separates data logic of a form from its presentation. Data logic is handled by an XForms model and presentation is handled by an XForms user interface. An XForms model holds instance data and associated constraints. Instance data is an internal representation of data of the XForms model. An XForms model can hold more than one data instance. In other words, the XForms model defines what a form is, what data a form should contain, and how the data of a form should be handled.
In XForms, presentation is handled by an XForms user interface or other compatible user interface, such as a XML user interface configured to interoperate with an XForms model. That is, an XForms user interface handles the display and input of data. XForms user interfaces are often referred to as XForms templates. It should be noted that the term “XForms template” shall be used generically throughout this application to represent any XForms compliant user interface.
An XForms binding mechanism binds an XForms model with a corresponding XForms template. An XForms Submit Protocol defines how XForms send and receive data between an XForms model and an XForms template. The XForms model is also bound to a backend application, which receives and processes instance data. Controls in an XForms template are often bound to the XForms model using XPath expressions, which can also bind the XForms model to the backend application.
XPath is a language that describes a way to locate and process items in XML documents by using an addressing syntax based on a path through the document's logical structure or hierarchy. XPath also provides basic facilities for manipulation of strings, numbers, and Booleans. XPath annotations or expressions can be attached to any node in an XForms data instance. Once attached to nodes, XPath expressions can provide a framework for supporting calculations, specific validations, read-only data, and visibility of controls. Accordingly, XPath expressions can be used to validate and otherwise process information input into an XForms template and to process data output to the XForms template.
Current technologies for generating XPath expressions and binding these expressions to controls within an XForms user interface are complex and cumbersome to use. Often, form designers lack the programmatic expertise to construct XPath expressions and to integrate them into forms being designed. This usually means that XForms user interfaces are initially designed by a form designer. A programming specialist is needed to construct and integrate XPath validations and other expressions to the user interfaces after initial form design activity has been completed. This process can add substantial time and/or cost to a form design effort.
To illustrate, a forms designer, such as a business analysis can initially develop an XForms template. A programming specialist will write code for the XForms model, which includes code that binds the XForms template to the XForms model and code that binds the XForms model to backend applications. The code can include XPath expressions. The XForms project can then be deployed to an XForms server, where remotely located clients can utilize the XForms project. Data submitted by the clients is conveyed to the bound backend application, even during testing phases. This testing data can be a data integrity risk for an operational system. Many man-hours of programmer time can also be consumed searching for and removing test information, which was received and processed by the backend applications. Whenever XForms templates are modified, corresponding modifications can be required for the XForms model, which can require coordination between the forms designer and programming specialist.